#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>

// int main() {
//   pid_t id = fork();
//     if(id<0){
//       perror("fork()");
//     } else if (id == 0) {
//       printf("child pid:%d\n",id);
//     } else  {
//       printf("parent pid:%d\n", id);
//     }
//   return 0;
// }

//-------------------------
// //模拟僵尸进程

// int main() {
//   pid_t id = fork();
//     if(id<0){
//       perror("fork()");
//     } else if (id == 0) {
//       sleep(3);
//     } else {
//       sleep(15);
//     }
//   return 0;
// }

//////////////////////
// 模拟孤儿进程

// int main() {
//   pid_t id = fork();
//   if (id < 0) {
//     perror("fork()");
//   } else if (id == 0) {
//     sleep(15);
//   } else {
//     sleep(3);
//   }
//   return 0;
// }

//////////////////

// int main() {
//   pid_t id = fork();
//   if (id < 0) {
//     perror("fork()");
//   } else if (id == 0) {
//     printf("i am child process\n");
//     sleep(5);
//   } else {
//     //父进程
//     int status = 0;
//     wait(&status);
//     printf("%d\n",WEXITSTATUS(status));
//   }
//   return 0;
// }

/////////////////

// int main() {
//   // execl("/usr/bin/ls", "ls", "-a", "-l", NULL);
//   execle("ls -a -l", "ls", "-a", "-l", NULL);
//   //
//   return 0;
// }

//////////////////

// int main() {
//   const char* message = "I like Linux\n";
//   int fd = open("bite", O_WRONLY|O_CREAT|O_TRUNC, 0666);
//   if(fd<0){
//     perror("open\n");
//     return -1;
//   }
//   ssize_t wret = write(fd, message, strlen(message));
//   if(wret<0){
//     perror("write\n");
//     return -1;
//   }
//   close(fd);

//   char buf[1024];
//   fd = open("bite", O_RDONLY);
//   if (fd < 0) {
//     perror("open\n");
//     return -1;
//   }
//   ssize_t rret = read(fd, buf, sizeof(buf));
//   if(rret<0){
//     perror("read\n");
//     return -1;
//   }
//   buf[rret] = '\0';
//   printf("%s\n", buf);
//   return 0;
// }

//////////////////

int main() {
  const char* str = "linux so easy!\n";
  FILE* fp = fopen("bite", "w");
  fwrite(str, strlen(str), 1, fp);
  fclose(fp);

  
  char buf[1024];
  fp = fopen("bite","r");
  size_t ret = fread(buf,  1, sizeof(buf), fp);
  buf[ret] = '\0';
  printf("%s\n", buf);
  //
  return 0;
}
